﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using Dao;
using _InformaticaIndustrial_DerivdosVinicos.DTO;

namespace _InformaticaIndustrial_DerivdosVinicos.Interfaz
{
    public partial class ABMCostosFijos : Form
    {
        IPCostoFijo _ipCtoFijo = new IPCostoFijo();
        CostoFijo costoFijo;

        public ABMCostosFijos()
        {
            InitializeComponent();
            LoadDGV();
        }

        private void LoadDGV()
        {
            dgvCtoFijo.DataSource = _ipCtoFijo.getAll<CostoFijo>();
        }


        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            switch (e.ColumnIndex)
            {
                case 0:
                    modificarCostoFijo(e.RowIndex); //Anda bien !
                    break;
                case 1:
                    eliminarCostoFijo(e.RowIndex);  //Anda bien !
                    break;
                default:
                    break;
            }
        }

        private void modificarCostoFijo(int i)
        {
            costoFijo = (CostoFijo)(dgvCtoFijo.Rows[i].DataBoundItem);
            Intermediario.confirmarCambios();
            MessageBox.Show("Costo Fijo Modificado");
        }

        private void eliminarCostoFijo(int p)
        {
            try
            {
                _ipCtoFijo.Delete(Convert.ToInt16(dgvCtoFijo.Rows[p].Cells["Id"].Value));
                Intermediario.confirmarCambios();
                MessageBox.Show("Costo Fijo Eliminado");
                LoadDGV();               
            }
            catch (Exception)
            {
                MessageBox.Show("Error al eliminar Costo Fijo");
            }
        }

        private void buttonCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
    }

